package com.topscomm.mis.cbb.pm.util;


import com.topscomm.basic.BasicSystemConst;

public class PmSystemConst extends BasicSystemConst {

    /**
     * 是否
     */
    public static class CboYesNo {
        public static final int YES = 1;
        public static final int NO = 0;
    }

    /**
     * 有效状态
     */
    public static class Enabled {
        public static final String VALID = "1"; // 有效
        public static final String INVALID = "0"; // 无效
    }

    /**
     * 任务效力
     */
    public static class TaskRuningState {
        public static final int VALID = 2; // 有效
        public static final int CONFUSION = 1; // 待定
        public static final int LOSE = 0; //无效
        public static final int UNKNOWN = -1; //未知

    }

    /**
     * 节点类型
     */
    public static class NodeType {
        public static final String START = "0"; // 开始
        public static final String SINGLE = "1"; // 单人
        public static final String COMPETITION = "2"; // 竞争
        public static final String COUNTERSIGN = "3"; // 会签
        public static final String COUNTERSIGNWAITING = "4"; // 会签等待
        public static final String CIRCULATION = "5"; // 自循环
        public static final String BRANCH = "6"; // 分支
        public static final String MERGE = "7"; // 合并
        public static final String END = "9"; // 结束
        public static final String SONFLOW = "99"; // 结束
    }

    /**
     * 常量名
     */
    public static class ConstName {
        public static final String LINEPASSSTATE = "linepassstate";
        public static final String NODEPASSSTATE = "nodepassstate";
        public static final String ISSONFLOW = "isSonFlow";
        public static final String RUNTYPE = "runType";
    }

    /**
     * 异步同步
     */
    public static class NodeRunType {
        public static final String SYNC = "sync";
        public static final String NOSYNC = "noSync";
    }

    /**
     * 任务来源
     */
    public static class TaskSource {
        public static final int ARTIFICIAL = 1; //人工
        public static final int FLOW = 0;//流程
    }

    /**
     * 任务状态
     */
    public static class TaskStatus {
        public static final int LOSE = -2; //已失效1
        public static final int CUT = -1;//被裁减
        public static final int NOTSTART = 0; //未开始1
        public static final int READYSTART = 1;//待进行1
        public static final int RUNNING = 2; //进行中1
        public static final int BACK = 3; //已退回
        public static final int CANCEL = 4;//已取消
        public static final int CONFUSION = 5;//待确定1
        public static final int COMPLETE = 9;//已完成
    }

    /**
     * 任务类型
     */
    public static class TaskType {
        public static final int GENERAL = 1; //普通
        public static final int SPECIAL = 0;//特殊
    }


    /**
     * 任务同级关系
     */
    public static class TaskRelation {
        public static final int COMPETITION = 2; // 竞争
        public static final int COUNTERSIGN = 3; // 会签
        public static final int OTHER = 0;//其他
    }

    /**
     * 任务是否自动完成
     */
    public static class TaskAutoComplete {
        public static final int LABOUR = 0; // 手动
        public static final int AUTO = 1; // 自动
    }

    /**
     * WBS、TASK编码前缀
     */
    public static class CodePrefix {
        public static final String WBS = "W"; // wbs
        public static final String TASK = "T"; // task

        public static final String UUCODE = "PRO"; //唯一编号
    }

    /**
     * 任务约束类型
     */
    public static class TaskConstraintType {
        public static final int STARTSTART = 1; // 其他任务开始本任务才能开始
        public static final int FINISHSTART = 2; // 其他任务完成本任务才能开始
        public static final int STARTFINISH = 3; // 其他任务开始本任务才能完成
        public static final int FINISHFINISH = 4; // 其他任务完成本任务才能完成
    }

    public static class TaskAddType {
        public static final int SAME = 1; //同级
        public static final int NEXT = 2;//下级
    }

    // 消息提醒类型
    public static class NoticeType {
        public static final int SCHEDULE = 0; //日程
        public static final int READYSTART = 1;//待进行
        public static final int OVERDUE = 2; //超期
    }

    // 推送消息类型
    public static class sendMessageType {
        public final static String PUSH = "0"; // 推送
        public final static String PUSH_NOTIFICATIONS = "1"; // 推送 + 提醒
    }

    // cbb流程父目录code
    public static final String CSIFLOW = "CsiFlow";

    // 审批流程配置消息类型
    public static class messageType {
        public final static String SCHEDULE_NOTICE = "scheduleNotice"; // 日程消息提醒
        public final static String READY_START_NOTICE = "readyStartNotice"; // 待进行消息提醒
        public final static String OVERDUE_NOTICE = "overdueNotice"; // 超期消息提醒
    }

	/**
	 * @description: 任务退回处理类型
	 * @param null
	 * @return
	 * @author: wangxinhua
	 * @date: 2023/6/25 10:28
	 * @modify:
	 */
	public static class TaskBackType {
		public static final int CLOSE = 1; //关闭
		public static final int TURN = 2;//转办
		public static final int BACK = 3;//退回
	}

	public static final int ADMIN_LEVEL = 9;

    public static String DEFAULTPARENTCODE = "0";

	/**
	 * @description: 项目状态
	 * @return
	 * @author: wangxinhua
	 * @date: 2023/6/25 10:28
	 * @modify:
	 */
	public static class ProjectState {
		public static final int ABANDON = -1; //废弃
	}

	public static class OperateWbsType {
		public static final int CREATE = 0; //创建WBS
		public static final int CREATESONFLOW = 1; //创建子流程的WBS
		public static final int CHANGECOMMIT = 2;//约束条件更改
		public static final int CHANGENODE = 3;//某个节点更改
		public static final int CHANGEFLOW = 4;//变更某个WBS
		public static final int BACKNODE = 5;//退回流程节点
        public static final int BACKFLOW = 6;//退回流程
        public static final int CONTINUEFLOW = 7;//继续流程
	}

	public static class WbsChangeType {
		public static final int ARTIFICIAL = 0; //人工的
		public static final int AUTOMATIC = 1; //自动的
	}

}
